#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

bool isPrime(int value)
{
	if(value < 2) return false;
	for(int i = 2; i < value; i++){
		if(value % i == 0){
			return false;
		}
	}
	return true;
}

//形式参数类型一定是容器中元素的类型
bool cmp(int x, int y)
{
	return x > y;
}

int main(void)
{
	//定义保存10个元素的容器
	vector<int> v = {1,2,4,22,3,9,0,67,7,22};
	//输入
	/*
	cout << "请输入10个整形数据: ";
	for(int i = 0; i < 10; i++){
		//cin >> v[i];			错误: v[index] 没有空间
		int x = 0;
		cin >> x;
		v.push_back(x);
	}
	*/
	vector<int> primes;

	//查找素数保存到另一个容器
	for(auto i : v){
		if(isPrime(i)){
			primes.push_back(i);
		}
	}

	/*
		对容器v中的数据排序
		sort 
			默认是升序排序
			如果需要降序排序需要定义回调函数传参
			如果是自定义类型保存在容器中，使用sort排序时，必须重载 < 运算符
	*/
	sort(v.begin(), v.end(), cmp);
	for(vector<int>::iterator it = v.begin(); it != v.end(); it++){
		cout << *it << " ";
	}
	cout << endl;
	//g++ xxx.cpp -std=c++0x
	for(int i : primes){
		cout << i << " ";
	}
	cout << endl;



	return 0;
}
